The art of cryptography requires good random numbers. Random number generators may be required to generate public/private key pairs for asymmetric algorithms such as Rivest, Shamir, Adelman (RSA), Digital Signature Algorithm (DSA), and Diffie-Helman. A random number generator may be a computational device designed to generate a sequence of numbers and/or symbols that lack any discernible pattern. Since security protocols may rely on the unpredictability of the keys they use, random number generators for cryptographic applications must meet sometimes stringent requirements.
There are two principal methods used to generate random numbers. A pseudorandom number generator (PRNG) uses deterministic processes to generate a series of outputs from an initial seed state. That is, no randomness is involved in the development of future states of the system. In contrast, a true random number generator (TRNG) uses a non-deterministic source to produce randomness. Some TRNGs operate by measuring unpredictable natural processes, such as thermal noise, atmospheric noise, or nuclear decay. A random number generator configured to shield a system from various attack vulnerabilities may be required.
Although the following Detailed Description will proceed with reference being made to illustrative embodiments, many alternatives, modifications, and variations thereof will be apparent to those skilled in the art. Accordingly, it is intended that the claimed subject matter be viewed broadly, and be defined only as set forth in the accompanying claims.